<?php
/*
	小游戏开发
*/
defined('BY_JYA') or exit('error');
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$types=get_h5gametypes();
if($_RQ['op']=='list'){
	$params=array('is_my'=>1);
	if($_RQ['type']){
		$params['type']=intval($_RQ['type']);
		$return['params']['type'] =$_RQ['type'];
	}
	if($_RQ['title']){
		$params['title like']='%'.trim($_RQ['title']).'%';
		$return['params']['title'] =$_RQ['title'];
	}
	$fields=array('id','title','version','image','type','name');
	$pindex = max(1, intval($_RQ['page']));
	$psize = 15;
	$total='';
	$orderby='id desc';
	$list=pdo_getslice('core_h5game',$params,array($pindex,$psize),$total,$fields,'',$orderby);
	$return['list']=$list?$list:array();
	$totalpage=ceil($total/$psize);
	$totalpage=intval($totalpage);
	$return['totalpage'] =$totalpage;
	$return['params']['page'] =$pindex;
	$return['types']=$types;
	$return['htmls']=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'我的游戏'),
			array('op'=>'edit','title'=>'新建游戏'),
		),
		'list'=>array('data'=>'list','delall'=>false,'list'=>array(
			array('name'=>'image','title'=>'游戏logo','type'=>'image'),
			array('name'=>'name','title'=>'游戏标识','type'=>'string'),
			array('name'=>'title','title'=>'游戏名称','type'=>'string'),
			array('name'=>'version','title'=>'游戏版本','type'=>'string'),
			array('name'=>'type','title'=>'游戏类型','type'=>'radio','options'=>'types'),
		)),
		'search_one'=>array('name'=>'title','add'=>false),
	);
	exi($return);
}
if($_RQ['op']=='edit'){
	$id=intval($_RQ['id']);
	if($id){
		$item=pdo_get('core_h5game',array('id'=>$id),array('id','name','title','image','type','desc','diy_form'));
		$item['diy_form']=$item['diy_form']?json_decode($item['diy_form'],true):array();
		$read=true;
	}else{
		$item=array();
		$item['diy_form']=array();
		$read=false;
	}
	$return['item']=$item;
	$return['htmls']=array(
		'type'=>'edit',
		'tabs'=>array(
			array('op'=>'list','title'=>'返回列表页'),
		),
		'post'=>'post',
		'edit'=>array(
			array('type'=>'string','name'=>'name','title'=>'游戏标识','read'=>$read),
			array('type'=>'string','name'=>'title','title'=>'游戏名称'),
			array('type'=>'radio','name'=>'type','title'=>'游戏类型','options'=>'types'),
			array('type'=>'image','name'=>'image','title'=>'游戏logo'),
			array('type'=>'text','name'=>'desc','title'=>'游戏介绍'),
			array('type'=>'array_simple','name'=>'diy_form','title'=>'自定义表单数据','fields'=>array(
					array('type'=>'string','name'=>'type','title'=>'表单类型'),
					array('type'=>'string','name'=>'name','title'=>'字段标识'),
					array('type'=>'string','name'=>'title','title'=>'字段名称'),
			)),
			array('type'=>'text','title'=>'自定义表单数据1','name'=>'diy_form_string','help'=>'如果上面的自定义表单数据无法满足需求，可在此直接输入json字符串来声明自定义表单数据。这里的设置优先级高于上面的设置'),
		),
	);
	$return['types']=$types;
	exi($return);
}
if($_RQ['op']=='post'){
	$post=get_postdata();
	if($post['diy_form_string']){
			$post['diy_form']=json_decode($post['diy_form_string'],true);
			if(!$post['diy_form']){
				exi('自定义表单数据字符串格式错误！','error');
			}
	}
	/*foreach($post['diy_form'] as &$item){
		if(substr($item['name'],0,9)!='diy_form.'){
			$item['name']='diy_form.'.$item['name'];
		}
	}*/
	$data=array_fields(array('type','title','image','desc','diy_form'),$post);
	$data['type']=intval($data['type']);
	$data['diy_form']=ijson_encode($data['diy_form']);
	$id=intval($post['id']);
	if($id){
		pdo_update('core_h5game',$data,array('id'=>$id));
	}else{
		$data['name']=trim($post['name']);
		if(!$data['name']){
			exi('请先设置小游戏标识！','error');
		}
		if(!is_dir(ROOT_PLUGIN.'jy_h5game/custom/templates/mobile/games/'.$data['name'])){
			exi('请先上传小游戏代码文件夹到指定目录:'.ROOT_PLUGIN.'jy_h5game/custom/templates/mobile/games/'.'。如尚未安装游戏营销插件，请先安装该插件！','error');
		}
		if(pdo_getcolumn('core_h5game',array('name'=>$data['name']),'id')){
			exi('小游戏标识已存在，请更换！','error');
		}
		$data['is_my']=1;
		$data['createtime']=TIMESTAMP;
		$data['release']=TIMESTAMP;
		pdo_insert('core_h5game',$data);
	}
	exi('操作成功！','','list');
}
if($_RQ['op']=='del'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择小游戏！','error');
	}
	pdo_delete('core_h5game',array('id'=>$id));
	exi('删除成功！');
}